home *** CD-ROM | disk | FTP | other *** search
-
- #include "includes.h"
- #include "installergui_data.h"
-
- /********************************************************************
- *
- * DESCRIPTION
- *
- * a very complex one :)
- * this handles both WELCOME panels, stores the user-selected
- * data (such as LOGFILE, USERMODE, PRETEND...) into the
- * applications global environment (app->app_GlobalEnv)
- *
- * IN: application - pointer to the private application structure
- * appname - the name of the application (i.e. the content
- * of the @APPNAME variable)
- * OUT: -
- */
-
- /********************************************************************
- *
- * STATIC
- *
- */
-
- static APTR make_intro1(APTR, char *);
- static APTR make_intro2(APTR);
-
- static const struct Hook welcome_MXTwoHook = { { NULL, NULL }, (VOID *) guistuff_MXTwoFun, NULL, NULL };
- static const struct Hook welcome_MXThreeHook = { { NULL, NULL }, (VOID *) guistuff_MXThreeFun, NULL, NULL };
- static const struct Hook welcome_MXFourHook = { { NULL, NULL }, (VOID *) guistuff_MXFourFun, NULL, NULL };
- static const struct Hook welcome_SetValHook = { { NULL, NULL }, (VOID *) guistuff_SetValFun, NULL, NULL };
-
- /********************************************************************
- *
- * EXTERN
- *
- */
-
- /********************************************************************
- *
- * PUBLIC
- *
- */
-
- /********************************************************************
- *
- * CODE
- *
- */
-
- void __asm igui_Welcome(register __a0 APTR application, register __a1 char *appname)
- {
- #ifdef DEBUG
- DEBUG_MAKRO
- #endif
-
- {
- struct Application *app = (struct Application *) application;
-
- // set the help text
- igui_SetHelp(app, app->app_Texts[HELP_INTRO1]);
-
- // make a new panel an display it
- if (!guistuff_NewContent(app, make_intro1(app, appname))) { app->app_Error = GUIERROR_NO_GUI_OBJECT; return; }
-
- // wait for user input
- igui_WaitApp(app);
- if (!igui_QuitApp(app))
- {
- // only if the selected user is AVERAGE or EXPERT, we have to set up
- // the second panel
- if (app->app_GlobalEnv[GENV_USER] != USER_NOVICE)
- {
- if (!guistuff_NewContent(app, make_intro2(app))) { app->app_Error = GUIERROR_NO_GUI_OBJECT; return; }
- igui_SetHelp(app, app->app_Texts[HELP_INTRO2]);
- igui_WaitApp(app);
- }
- }
-
- igui_EmptyPanel(app);
- return;
- }
- }
-
- /********************************************************************/
-
- // create the panel for the first intro
- static APTR make_intro1(APTR application, char *appname)
- {
- struct Application *app = (struct Application *) application;
-
- char *welcometext;
- APTR IM_novice, IM_average, IM_expert,
- obj = NULL;
-
- // create the welcome text
- welcometext = sav_StringF2(app->app_Texts[INTRO1_WELCOME], &appname);
- if (!welcometext) { }
- else
- {
- obj = GroupObject,
- Child, TextObject,
- MUIA_Frame, MUIV_Frame_None,
- MUIA_Text_Contents, welcometext,
- MUIA_Text_SetMin, TRUE,
- MUIA_Text_PreParse, "\33c",
- End,
- Child, HVSpace,
- Child, GroupObject,
- MUIA_Frame, MUIV_Frame_Group,
- MUIA_FrameTitle, app->app_Texts[INTRO1_MODE],
- MUIA_Group_Horiz, TRUE,
- Child, HVSpace,
- Child, GroupObject,
- MUIA_Group_Columns, 2,
- Child, IM_novice = guistuff_InitRadio((app->app_GlobalEnv[GENV_DEFUSER]==USER_NOVICE)?TRUE:FALSE,
- (app->app_GlobalEnv[GENV_MINUSER]>USER_NOVICE)?TRUE:FALSE),
- Child, LLabel(app->app_Texts[INTRO1_NOVICE]),
- Child, IM_average = guistuff_InitRadio((app->app_GlobalEnv[GENV_DEFUSER]==USER_AVERAGE)?TRUE:FALSE,
- (app->app_GlobalEnv[GENV_MINUSER]>USER_AVERAGE)?TRUE:FALSE),
- Child, LLabel(app->app_Texts[INTRO1_AVERAGE]),
- Child, IM_expert = guistuff_InitRadio((app->app_GlobalEnv[GENV_DEFUSER]==USER_EXPERT)?TRUE:FALSE,
- FALSE),
- Child, LLabel(app->app_Texts[INTRO1_EXPERT]),
- End,
- Child, HVSpace,
- End,
- Child, HVSpace,
- End;
-
- if (obj)
- {
- DoMethod(IM_novice, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 5, MUIM_CallHook, &welcome_MXThreeHook, IM_novice, IM_average, IM_expert);
- DoMethod(IM_average, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 5, MUIM_CallHook, &welcome_MXThreeHook, IM_average, IM_novice, IM_expert);
- DoMethod(IM_expert, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 5, MUIM_CallHook, &welcome_MXThreeHook, IM_expert, IM_novice, IM_average);
-
- DoMethod(IM_novice, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_USER]), USER_NOVICE);
- DoMethod(IM_average, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_USER]), USER_AVERAGE);
- DoMethod(IM_expert, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_USER]), USER_EXPERT);
- }
- }
-
- return(obj);
- }
-
- /********************************************************************/
-
- static APTR make_intro2(APTR application)
- {
- struct Application *app = (struct Application *) application;
-
- APTR IM_pretend, IM_real, IM_printer, IM_file, IM_nolog, IM_console;
- APTR CM_debug, CM_startup, CM_uninstall, CM_dontdelsysdir, CM_packagecomment, CM_alwaysconfirm;
- APTR obj;
-
- obj = GroupObject,
- Child, GroupObject,
- MUIA_Frame, MUIV_Frame_Group,
- MUIA_FrameTitle, app->app_Texts[INTRO2_OPTS],
- MUIA_Group_Horiz, TRUE,
- Child, HVSpace,
- Child, GroupObject,
- MUIA_Group_Columns, 2,
- Child, IM_real = guistuff_InitRadio(TRUE, FALSE),
- Child, LLabel(app->app_Texts[INTRO2_REAL]),
- Child, IM_pretend = guistuff_InitRadio(FALSE, !(app->app_GlobalEnv[GENV_ALLOW_PRETEND])),
- Child, LLabel(app->app_Texts[INTRO2_PRETEND]),
- End,
- Child, HVSpace,
- End,
- Child, HVSpace,
- Child, GroupObject,
- MUIA_Frame, MUIV_Frame_Group,
- MUIA_FrameTitle, app->app_Texts[INTRO2_LOG],
- MUIA_Group_Horiz, TRUE,
- Child, HVSpace,
- Child, GroupObject,
- MUIA_Group_Columns, 2,
- Child, IM_printer = guistuff_InitRadio(FALSE, !(app->app_GlobalEnv[GENV_ALLOW_PRINT])),
- Child, LLabel(app->app_Texts[INTRO2_PRINTER]),
- Child, IM_file = guistuff_InitRadio(FALSE, !(app->app_GlobalEnv[GENV_ALLOW_LOG])),
- Child, LLabel(app->app_Texts[INTRO2_FILE]),
- Child, IM_console = guistuff_InitRadio(FALSE, FALSE),
- Child, LLabel(app->app_Texts[INTRO2_CONSOLE]),
- Child, IM_nolog = guistuff_InitRadio(TRUE, FALSE),
- Child, LLabel(app->app_Texts[INTRO2_NONE]),
- End,
- Child, HVSpace,
- End,
- Child, HVSpace,
- Child, GroupObject,
- MUIA_Frame, MUIV_Frame_Group,
- MUIA_FrameTitle, app->app_Texts[INTRO2_ADVANCED],
- MUIA_Group_Horiz, TRUE,
- Child, HVSpace,
- Child, GroupObject,
- MUIA_Group_Columns, 4,
- Child, Label(app->app_Texts[INTRO2_DEBUG]),
- Child, CM_debug = CheckMark(app->app_GlobalEnv[GENV_DEBUGMODE]),
- Child, Label(app->app_Texts[INTRO2_NOSTARTUPSEQUENCE]),
- Child, CM_startup = CheckMark(app->app_GlobalEnv[GENV_STARTUP]),
- Child, Label(app->app_Texts[INTRO2_UNINSTALL]),
- Child, CM_uninstall = CheckMark(app->app_GlobalEnv[GENV_UNINSTALL]),
- Child, Label(app->app_Texts[INTRO2_DONTDELFROMSYSDIRS]),
- Child, CM_dontdelsysdir = CheckMark(app->app_GlobalEnv[GENV_DONTDELFROMSYSDIRS]),
- Child, Label(app->app_Texts[INTRO2_PACKAGE_COMMENT]),
- Child, CM_packagecomment = CheckMark(app->app_GlobalEnv[GENV_PACKAGE_COMMENT]),
- Child, Label(app->app_Texts[INTRO2_ALWAYSCONFIRM]),
- Child, CM_alwaysconfirm = CheckMark(app->app_GlobalEnv[GENV_ALWAYSCONFIRM]),
- End,
- Child, HVSpace,
- End,
- Child, HVSpace,
- End;
-
- if (obj)
- {
- // mx
- DoMethod(IM_real, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_MXTwoHook, IM_real, IM_pretend);
- DoMethod(IM_pretend, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_MXTwoHook, IM_pretend, IM_real);
-
- DoMethod(IM_real, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_INSTALL]), INSTALL_FOR_REAL);
- DoMethod(IM_pretend, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_INSTALL]), INSTALL_PRETEND);
-
- DoMethod(IM_printer, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 6, MUIM_CallHook, &welcome_MXFourHook, IM_printer, IM_file, IM_console, IM_nolog);
- DoMethod(IM_file, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 6, MUIM_CallHook, &welcome_MXFourHook, IM_file, IM_printer, IM_console, IM_nolog);
- DoMethod(IM_console, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 6, MUIM_CallHook, &welcome_MXFourHook, IM_console, IM_file, IM_printer, IM_nolog);
- DoMethod(IM_nolog, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 6, MUIM_CallHook, &welcome_MXFourHook, IM_nolog, IM_file, IM_console, IM_printer);
-
- DoMethod(IM_printer, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_LOG]), LOG_PRINTER);
- DoMethod(IM_file, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_LOG]), LOG_FILE);
- DoMethod(IM_console, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_LOG]), LOG_CONSOLE);
- DoMethod(IM_nolog, MUIM_Notify, MUIA_Pressed, TRUE,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_LOG]), LOG_NOLOG);
-
- // checkmarks
- DoMethod(CM_uninstall, MUIM_Notify, MUIA_Selected, MUIV_EveryTime,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_UNINSTALL]), !(app->app_GlobalEnv[GENV_UNINSTALL]));
- DoMethod(CM_startup, MUIM_Notify, MUIA_Selected, MUIV_EveryTime,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_STARTUP]), !(app->app_GlobalEnv[GENV_STARTUP]));
- DoMethod(CM_debug, MUIM_Notify, MUIA_Selected, MUIV_EveryTime,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_DEBUGMODE]), !(app->app_GlobalEnv[GENV_DEBUGMODE]));
- DoMethod(CM_packagecomment, MUIM_Notify, MUIA_Selected, MUIV_EveryTime,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_PACKAGE_COMMENT]), !(app->app_GlobalEnv[GENV_PACKAGE_COMMENT]));
- DoMethod(CM_alwaysconfirm, MUIM_Notify, MUIA_Selected, MUIV_EveryTime,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_ALWAYSCONFIRM]), !(app->app_GlobalEnv[GENV_ALWAYSCONFIRM]));
- DoMethod(CM_dontdelsysdir, MUIM_Notify, MUIA_Selected, MUIV_EveryTime,
- MUIV_Notify_Self, 4, MUIM_CallHook, &welcome_SetValHook, &(app->app_GlobalEnv[GENV_DONTDELFROMSYSDIRS]), !(app->app_GlobalEnv[GENV_DONTDELFROMSYSDIRS]));
- }
-
- return(obj);
- }
-